function [L,gamma] = compute_lorentz(b)

    % 计算给定速度方向的Lorentz变换矩阵
    %
    % 输入:
    %   b - 3x1 三个方向的速度分量（以光速c为单位）
    %
    % 输出:
    %   L - 4x4 Lorentz变换矩阵
    % 使用AI辅助

    if ndims(b) != 2 || size(b,1) != 3 || size(b,2) != 1
        error('wrong dim')
    end

    b_squared = sum(b.^2);
    if b_squared >= 1
        error('速度分量平方和必须小于1（即v<c）');
    end

    gamma = 1 / sqrt(1 - b_squared);

    % 初始化Lorentz变换矩阵
    L = zeros(4, 4);
    if b_squared > 0
        L(1,1) = gamma;
        L(1, 2:4) = - gamma * b';
        L(2:4, 1) = - gamma * b;
        L(2:4,2:4) = (gamma-1)*(b.*b') / b_squared;
        L(2:4,2:4) += eye(3);
    else
        L += eye(4);
    end
    return
end

